package cn.wp.ewallet.wallet.dao;

import cn.wp.common.core.model.WpPage;
import cn.wp.ewallet.wallet.model.dto.TransAccountLogReqDto;
import cn.wp.ewallet.wallet.model.entity.TransAccountLogDo;
import cn.wp.ewallet.wallet.model.entity.TransAccountLogDoo;
import cn.wp.ewallet.wallet.model.entity.TransAccountLogReqDoo;

import java.util.List;

/**
 * @ClassName TransAccountLogDao
 * @Author ruixule
 * @Description TODO
 * @Date 2020/1/7 10:26
 */
public interface TransAccountLogDao {

    /**
     * 记录转账记录
     * @param transAccountLogDo
     * @return
     */
    public int insertTransAccountLogDo(TransAccountLogDo transAccountLogDo);

    /**
     * 通过用户钱包地址查询 转账记录 （转给别人、别人转给他的）
     * @param walletAddress
     * @param moneyTypeId
     * @param wpPage
     * @return
     */
    public WpPage<TransAccountLogDo> selectTransAccountLogByWalletAdd(String walletAddress, String moneyTypeId, WpPage wpPage);


    /**
     * 查询全部充值记录
     * @param address
     * @param page
     * @return
     */
    WpPage<TransAccountLogDo> selectALLRecharge(String address, WpPage page);

    /**
     * 查询所有未确认的交易
     * @return
     */
    List<TransAccountLogDo> selectPendingList();

    /**
     * 修改转账交易信息
     * @param transAccountLogDo
     */
    void updateTransAccountLog(TransAccountLogDo transAccountLogDo);


    /**
     * 查询自动归集信息
     * @param transAccountLogReqDoo
     * @param wpPage
     * @return
     */
    WpPage<TransAccountLogDoo> getCollectLog(TransAccountLogReqDoo transAccountLogReqDoo, WpPage wpPage);

    /**
     * 根据日志ID查询转账记录
     * @param logId
     * @return
     */
    TransAccountLogDoo getLogById(String logId);

    /**
     * 查询系统内的转账记录
     * @param wpPage
     * @return
     */
    WpPage<TransAccountLogDoo> getTransAccountLogsInsys(TransAccountLogReqDto transAccountLogReqDto, WpPage wpPage);

    /**
     * 查看昨天所有的转账信息
     * @return
     */

    List<TransAccountLogDo> selectYesterdayTransAccountLogList();
}
